package com.example.libary.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.libary.entity.Book;

/**
 * 图书服务接口
 */
public interface BookService extends IService<Book> {
    
    /**
     * 分页查询图书列表
     *
     * @param page       分页参数
     * @param name       图书名称
     * @param author     作者
     * @param categoryId 分类ID
     * @param status     状态
     * @return 分页数据
     */
    Page<Book> page(Page<Book> page, String name, String author, Long categoryId, String status);
    
    /**
     * 根据ISBN查询图书
     *
     * @param isbn ISBN
     * @return 图书信息
     */
    Book getByIsbn(String isbn);
    
    /**
     * 更新图书状态
     *
     * @param id     图书ID
     * @param status 状态
     * @return 是否成功
     */
    boolean updateStatus(Long id, String status);
    
    /**
     * 更新图书可借数量
     *
     * @param id        图书ID
     * @param available 可借数量
     * @return 是否成功
     */
    boolean updateAvailable(Long id, Integer available);
} 